// ActionScript file
import classes.Aluno;
import classes.Certificado;
import classes.Conhecimento;
import classes.Endereco;
import classes.ListaEspera;
import classes.Turma;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.DateField;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

import title_window.listaAlunoEspera;

public var popUp:listaAlunoEspera;
public var aluno_lista_espera:ListaEspera;

//array do combo sexo
[Bindable]
public var cb_sexo:ArrayCollection = new ArrayCollection(
	[ {label:"Masculino", index:0},{label:"Feminino",index:1}]);
//array responsável por preencher combo de estado civil
[Bindable]
public var cb_estcivil:ArrayCollection = new ArrayCollection(
	[ {label:"Casado", index:0},{label:"Solteiro",index:1},{label:"Viúvo",index:2},{label:"Divorciado",index:3}]);
//array responsável por preencher combo de turmas cadastradas
[Bindable]
//array do combo turma
public var cbturma:ArrayCollection;

//objeto aluno
public var a:Aluno;
//objeto conhecimento
public var c:Conhecimento;
//objeto endereco
public var e:Endereco;
//objeto certificado
public var ce:Certificado;
//variavel de validação da tela
public var validado:Boolean;
//variavel que recebe o id do aluno após o cadastro
//auxlia para gerar a ficha de inscrição
public var id_a:int;

/*
FUNÇÃO CHAMADA LOGO APÓS A TELE SER REQUISITADA
-chama a funcao turmas cadastradas	
*/
protected function inicializa(event:FlexEvent):void
{
	this.controle_turma.listarTodosTurma();	
	validado=true;
}
//função chamado para cadastrar o aluno
protected function cadastrar_aluno():void
{	
	validaData.validate(campo_nasc.text);
	if(validado==true)
	{		
		a=new Aluno();
		a.nome=campo_Nome.text;
		a.rg=campo_rg.text;
		a.uf_rg=campo_ufRG.text;
		a.cpf=campo_cpf.text;
		a.data_nascimento=DateField.stringToDate(campo_nasc.text, "DD/MM/YYYY");
		a.local_nascimento=campo_local.text;
		a.uf_nascimento=campo_ufLocal.text;
		a.estado_civil=combo_civil.selectedItem.label;
		a.telefone_residencial=campo_fone.text;
		a.telefone_celular=campo_cel.text;
		a.situacao="Ativo";				
		a.sexo=combo_sexo.selectedItem.label;
		c=new Conhecimento;
		c.nocao_informatica=campo_nocao.text;
		c.utiliza_computador=check_utiliza_comp.selected;
		c.curso_anterior=check_curso_ant.selected;
		e=new Endereco();
		e.logradouro=campo_end.text;	
		e.num_casa=parseInt(campo_num.text);
		e.bairro=campo_bairro.text;
		ce=new Certificado();
		ce.num_registro="";
		ce.livro="";
		ce.folha="";
		e.complemento=campo_comp.text;
		a.conhecimento=c;
		a.endereco=e;
		a.turma=combo_turma.selectedItem;
		a.certificado=ce;
		this.controle_aluno.cadastraAluno(a);
	}
}
//limpa os campos após o cadastro
protected function limpa_campos():void
{
	campo_Nome.text="";
	campo_rg.text="";
	campo_ufRG.text="";
	campo_cpf.text="";
	campo_nasc.text="";
	campo_local.text="";
	campo_ufLocal.text="";
	combo_civil.selectedItem.index=0;
	campo_fone.text="";
	campo_cel.text="";
	combo_sexo.selectedItem.index=0;				
	campo_nocao.text="";
	check_curso_ant.selected=false;
	check_utiliza_comp.selected=false;				
	campo_end.text="";	
	campo_num.text="";
	campo_bairro.text="";
	campo_comp.text="";				
}
//função responsavel para validar a tela 
//se o campo estiver validado chama esta função
private function tela_validada():void{
	validado=true;
}
//função responsavel para validar a tela
//se o campo não estiver validado chama esta função
private function tela_invalida():void
{
	validado=false;
}
//preenche o combo de turmas 
protected function listar_turma_result(event:ResultEvent):void
{
	cbturma=event.result as ArrayCollection;	
}

//emite mensagem e limpa os campos
protected function inserir_aluno_result(event:ResultEvent):void
{
	id_a=event.result as int;
	limpa_campos();	
	Alert.show("Deseja gerar a ficha de inscrição ?","Ficha de Inscrição", Alert.YES | Alert.NO ,null,opcao);
	this.controle_listaEspera.removerAlunoLista(aluno_lista_espera);
}
//verifica a resposta do usuario
private function opcao(event:CloseEvent):void{
	if(event.detail==Alert.YES){					
		var urlReq:URLRequest = new URLRequest("Ficha_Inscricao"); 				
		var param:URLVariables = new URLVariables();  
		param.id_aluno=id_a;
		urlReq.data=param;	
		urlReq.method = "POST"; 
		navigateToURL(urlReq, "_blank");
	}					
}
//emite mensagem
protected function inserir_aluno_fault(event:FaultEvent):void
{
	Alert.show("Problema ao cadastrar");
}
//emite mensagem
protected function listar_turma_fault(event:FaultEvent):void
{
	Alert.show("Problema ao popular combo turma");
}
//abre pop-up de alunos na lista de espera
private function procura_aluno():void
{
	popUp=listaAlunoEspera(PopUpManager.createPopUp(this,listaAlunoEspera,true));
	popUp.addEventListener("PopUpFechou",fechou);	
}
//preenche o campo nome após fechar pop-up de alunos na lista de espera
private function fechou(evt:Event):void
{
	aluno_lista_espera=popUp.aluno_lista;	
	campo_Nome.text=aluno_lista_espera.nome_aluno;	
}
